Motor-driven adjustable-tension trigger

ABSTRACT

A user-input device includes a user-actuatable trigger configured to pivot about a trigger axis, a rack gear, a return spring operatively intermediate the user-actuatable trigger and the rack gear, a force-feedback motor and a posture sensor configured to determine a posture of the user-actuatable trigger about the trigger axis. The return spring is configured to forward bias the user-actuatable trigger toward an extended posture. The force-feedback motor is configured to drive the rack gear based on a force-feedback signal and thereby adjust a spring force applied by the return spring to the user-actuatable trigger.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/611,633, filed Jun. 1, 2017, the entire contents of which is herebyincorporated herein by reference for all purposes.

BACKGROUND

A user-input device, such as a video game controller, may be used toprovide user input to control an application executed by a computingdevice, such as an object or a character in a video game, or to providesome other form of control. A video game controller may include varioustypes of physical controls that may be configured to be manipulated by afinger to provide different types of user input. Non-limiting examplesof such controls may include triggers, push buttons, touch pads,joysticks, paddles, bumpers, and directional pads. The various physicalcontrols may be physically manipulated, and the physical controller maysend control signals to a computing device based on such physicalmanipulation to effect control of an application executed by thecomputing device, for example.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter. Furthermore,the claimed subject matter is not limited to implementations that solveany or all disadvantages noted in any part of this disclosure.

A user-input device includes a user-actuatable trigger configured topivot about a trigger axis, a rack gear, a return spring operativelyintermediate the user-actuatable trigger and the rack gear, aforce-feedback motor, and a posture sensor configured to determine aposture of the user-actuatable trigger about the trigger axis. Thereturn spring is configured to forward bias the user-actuatable triggertoward an extended posture. The force-feedback motor is configured todrive the rack gear based on a force-feedback signal and thereby adjusta spring force applied by the return spring to the user-actuatabletrigger.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1-2 show an example user input device.

FIG. 3 schematically shows an example user input device.

FIGS. 4A-4B show an example force-feedback trigger assembly including asector rotary gear interfacing with a force-feedback motor.

FIGS. 5A-5B show an example force-feedback trigger assembly including arack gear interfacing with a force-feedback motor.

FIGS. 6A-6D show an example force-feedback trigger assembly including anadjustable trigger return spring interfacing with a force-feedback motorvia a rack gear.

FIGS. 7A-7B show an example force-feedback trigger assembly including aclutch operatively intermediate a user-actuatable trigger and aforce-feedback motor.

FIG. 8 shows a perspective view of the force-feedback trigger assemblyof FIGS. 7A-7B.

FIG. 9 shows an example one-way clutch that may be incorporated into aforce-feedback trigger assembly.

FIGS. 10A-10B show an example force-feedback trigger assembly includinga sector gear that moves separately from a user-actuatable trigger.

FIG. 11 shows an example force-feedback trigger assembly including anadjustable trigger return spring interfacing with a force-feedback motorvia a sector gear.

FIG. 12 shows an example force-feedback trigger assembly including aforce sensor.

FIG. 13 shows an example user-perceived resistance profile for auser-actuatable trigger.

FIG. 14 shows an example user-perceived resistance profile including ahard stop for a user-actuatable trigger.

FIG. 15 shows an example user-perceived resistance and assistanceprofile for a user-actuatable trigger.

FIG. 16 shows an example scenario in which a user-perceived resistanceof a user-actuatable trigger is dynamically changed based on a parameterof a computing device.

FIG. 17 shows an example scenario in which a hard stop of auser-actuatable trigger is dynamically changed based on a parameter of acomputing device.

FIG. 18 shows an example scenario in which a user-perceived resistanceof a user-actuatable trigger is dynamically changed based on a userpreference.

DETAILED DESCRIPTION

Input devices, such as game controllers, may include one or morevibrators (e.g., Eccentric Rotational Mass (ERMs)) configured to vibratethe entire game controller body such that the vibration is felt in thepalm of the hand(s) supporting the controller. Further, in someimplementations, vibrator(s) may be localized to user-actuatabletrigger(s) of the game controller to provide independent localizedvibrations in each trigger. For example, localized vibrations or pulsesthrough a user's finger(s) may approximate a recoil of a real or fantasyweapon in a first person shooting game or another type of game.

Although a vibrator can provide feedback in the form of vibration, avibrator cannot adjust any other user-perceived state of the trigger,such as a resistance/tension, return speed, and/or a length oftravel/rotation. Moreover, a vibrator cannot dynamically change theuser-perceived state of the trigger based on varying conditions, such asa parameter of a computing device/video game, or user preferences.

Accordingly, the present disclosure is directed to a user-input deviceincluding a user-actuatable trigger configured to rotate about a triggeraxis and operatively connected with a force-feedback motor. Theforce-feedback motor is configured to activate based on a force-feedbacksignal received by a computing device in communication with theuser-input device. When activated, the force-feedback motor isconfigured to selectively drive the trigger (e.g., by applying a torque,linear force, or adjustable tension via spring) and adjust auser-perceived state of the trigger.

Such a motor-driven, force-feedback trigger configuration enables theuser-perceived state of the trigger to be dynamically adjusted in avariety of ways. For example, the trigger may be driven by theforce-feedback motor to adjust a user-perceived resistance of theuser-actuatable trigger. In another example, the trigger may be drivenby the force-feedback motor to simulate a hard stop that effectivelyadjusts a pull length or range of rotation of the trigger. In anotherexample, the trigger may be driven by the force-feedback motor to assistthe trigger in returning to a fully-extended or “unpressed” posture whena user's finger is removed from the trigger. In another example, thetrigger may be driven by the force-feedback motor to vibrate thetrigger.

Furthermore, such a motor-driven, force-feedback trigger configurationenables the user-perceived state of the trigger to be dynamicallyadjusted in any suitable manner based on any suitable conditions. Forexample, the user-perceived state of the trigger may be changed based ona parameter of a computing device or an application executed by thecomputing device, such as a game parameter of a video game. In oneexample, the user-perceived resistance of the trigger is dynamicallyadjusted to correspond to characteristics (e.g., pull length, pullweight) of different virtual triggers of different virtual weapons. Inanother example, the user-perceived state of the trigger may bedynamically adjusted based on different user preferences. Such dynamiccontrol of the user-perceived state of the trigger may increase a levelof immersion of a user experience, such as playing a video game.

FIGS. 1-2 show an example user-input device in the form of a physicalvideo game controller 100. The game controller 100 is configured totranslate user input into control signals. These control signals areprovided to a computing device 102, such as a gaming console to controlan operating state of the computing device 102. For example, the gamecontroller 100 may translate user input into control signals to controlan application (e.g., video game) executed by the computing device 102,or to provide some other form of control. The game controller 100includes a communication subsystem 104 configured to communicativelycouple the game controller 100 with the computing device 102. Thecommunication subsystem 104 may include a wired or wireless connectionwith the computing device 102. The communication subsystem 104 mayinclude any suitable communication hardware to enable communicationaccording to any suitable communication protocol (e.g., Wi-Fi,Bluetooth). For example, such communicative coupling may enable two-waycommunication between the game controller 100 and the computing device102.

The control signals sent from the game controller 100 to the computingdevice 102 via the communication subsystem 104 may be mapped to commandsto control a video game or any other application, or to perform anyother computing operations The computing device 102 and/or the gamecontroller 100 may be configured to map different control signals todifferent commands based on a state of the computing device 102, thegame controller 100, a particular application being executed by thecomputing device 102, and/or a particular identified user that iscontrolling the game controller 100 and/or the computing device 102.

The game controller 100 includes a plurality of physical controls 106configured to generate different control signals responsive to physicalmanipulation. The physical controls 106 may include a plurality ofaction buttons 108 (e.g., 108A, 108B, 108C, 108D, 108E, 108F, 108G, and108H), a plurality of joysticks 110 (e.g., a left joystick 110A and aright joystick 110B), a plurality of triggers 112 (e.g., a left trigger112A and a right trigger 112B), and a directional pad 114. The gamecontroller 100 may include any number of physical controls, any type ofphysical controls, any number of electronic input sensors, and any typeof electronic input sensors without departing from the scope of thisdisclosure.

Physical controls 106 may be coupled to one or more frames 116 (shown inFIG. 2). The frame(s) 116 may be contained in a housing 118 of the gamecontroller 100. One or more printed circuit boards 120 may be coupled tothe frame(s) 116. Although a single printed circuit board is depicted,in some implementations, two or more printed circuit boards may beemployed in the game controller 100. The printed circuit board 120 mayinclude a plurality of electronic input sensors 122. Each electronicinput sensor 122 may be configured to generate an activation signalresponsive to interaction with a corresponding physical control 106, ormay determine a state or characteristic of a corresponding physicalcontrol 106. Non-limiting examples of electronic input sensors includedome switches, tactile switches, posture sensors (e.g., Hall Effectsensors), force sensors, speed sensors, potentiometers, and othermagnetic or electronic sensing components. Any suitable sensor may beimplemented in the game controller 100.

Each of the action buttons 108 may be configured to activate acorresponding electronic input sensor 122, to generate an activationsignal responsive to being depressed (e.g., via physical manipulation).Each of the joysticks 110 may be configured to provide two-dimensionalinput that is based on a position of the joystick in relation to adefault “center” position. For example, the joysticks 110 may interactwith electronic input sensors in the form of potentiometers that usecontinuous electrical activity to provide an analog input controlsignal. The directional pad 114 may be configured to reside in an“unpressed” posture when no touch force is applied to the directionalpad 114. In the unpressed posture, the directional pad 110 does notcause any of the plurality of electronic input sensors 122 to generatean activation signal. Further, the directional pad 114 may be configuredto move from the unpressed posture to a selected activation postureresponsive to a touch force being applied to the directional pad 114.The selected activation posture may be one of multiple differentactivation postures that each generate a different activation signal, ora combination of activation signals, by interfacing with differentelectronic input sensors.

Each of the triggers 112 may be configured to pivot about a trigger axisbetween an extended posture and a retracted posture. Each of thetriggers 112 may be forward biased to pivot towards the fully-extendedposture when not being manipulated by an external force. For example,each of the triggers 112 may pivot based on manipulation by a user'sfinger away from the fully-extended posture and toward the retractedposture. As such, the triggers 112 may be referred to as user-actuatabletriggers.

Furthermore, in some implementations, under some conditions, thetriggers 112 may be configured to pivot due to being driven by aforce-feedback motor without manipulation from a user's finger. Forexample, a trigger 112 may be driven by a force-feedback motor and heldat a retracted posture as part of a real-time effect for a video game.In one example, the real-time effect indicates that a virtual weapon isout of ammunition and needs to be reloaded. Each trigger 112 may bedriven by a force-feedback motor to adjust any suitable user-perceivedstate of the trigger 112.

Different aspects of the each of the triggers 112 may be determined bydifferent activation sensors. Each of these sensors may generate one ormore activation signals that may be used to control operation of thetriggers 112 and/or the computing device 102.

Note that an activation signal produced by an electronic input sensor122 when a corresponding physical control 106 is in an activationposture may be any signal that differs from a signal or lack thereofproduced by the electronic input sensor 122 in the default posture. Forexample, in some implementations, the activation signal may correspondto a supply voltage (e.g., VDD) of the game controller 100 and thesignal produced in the default state may correspond to a relativeground. (e.g., 0). In other implementations, the activation signal maycorrespond to a relative ground and the signal produced in the defaultstate may correspond to the supply voltage of the game controller 100.An activation signal produced by an electronic input sensor 122 may takeany suitable form.

The game controller 100 includes an integrated microcontroller 124configured to receive activation signals from the plurality of physicalcontrols 106, and send the activation signals to the computing device102, via the communication subsystem 104. Further, the computing device102 may use the activation signals to control operation of the computingdevice 102, such as controlling a video game or other applicationexecuted by the computing device 102. Further, the microcontroller 124is configured to receive, via the communication subsystem 104, controlsignals from the computing device 102. The microcontroller 124 may usethe control signals to control operation of the game controller 100. Forexample, the microcontroller 124 may receive force-feedback signals tocontrol operation of a force-feedback motor to drive one or more of thetriggers 112.

In some implementations, the microcontroller 124 may be configured tocontrol operation of the force-feedback motor without continuouslyreceiving control signals (e.g., force feedback signals) from thecomputing device 102. In other words, the microcontroller 124 may beconfigured to perform at least some of the functionality of thecomputing device 102 related to controlling operation of the triggers112. In some implementations, the microcontroller 124 may controloperation of the force-feedback motor to drive the triggers 112 based onone or more force-feedback definitions. For example, a force-feedbackdefinition may be a data structure representing one or moreresistance/assistance/vibration profiles that may be used throughout thecourse of playing a video game or interacting with an application. Insome implementations, the computing device 102 may send one or moreforce-feedback definitions to the game controller 100. In some suchimplementations, the microcontroller 124 may control operation of theforce-feedback motor to drive the trigger 112 based on one or moreforce-feedback definitions until the computing device 102 sendsdifferent force-feedback definitions to the game controller 100, andthen the microcontroller 124 may control the force-feedback motor basedon the updated force-feedback definitions. In other implementations, themicrocontroller 124 may be pre-loaded with one or more force-feedbackdefinitions. In some such implementations, the microcontroller 100 maycontrol operation of the force-feedback motor to drive the trigger 112without being required to communicate with the computing device 100. Insome implementations, the microcontroller 124 may continue to receiveoperating parameters (e.g., video game parameters) from the computingdevice 102 that affect how the microcontroller 124 uses theforce-feedback definition(s) to control the force-feedback motor. Insuch implementations, since force-feedback processing is handledon-board by the microcontroller 124, the force feedback control loopdoes not depend on processing by the computing device 102. In this way,force-feedback control may be perceived as substantially real-timefeedback to the user.

The force-feedback definitions may allow the force-feedback triggers tobe controlled in a manner that is exceedingly configurable. Theforce-feedback definitions may define rules that are a function of anysuitable input (e.g., the posture sensor, the force sensor, the touchsensor, time, the state of any other controller input including buttons,thumbsticks, and the sensors of other triggers, or any combinationthereof).

In one example of a force-feedback definition, if the posture of thetrigger is more than fifteen degrees from the fully-extended posture,then the target force is ten Newtons; otherwise if the posture of thetrigger is less than fifteen degrees from the fully-extended posture,then the target force is a maximum force of one Newton. This exampledefines a hard stop at fifteen degrees. In another example of aforce-feedback definition, if the posture of the trigger is greater thanten degrees from the fully-extended posture, the target force tracks asine wave function having a maximum amplitude of five Newtons.

These rules may result in a force-feedback signal being output tocontrol the force-feedback motor. In some examples, the force-feedbacksignal may define a target or set point for the force-feedback motor totry to achieve/maintain. The target or set point may take various forms.For example, the target may be a trigger position, trigger velocity,trigger force, or a combination of thereof. When two or more differenttargets are used, one or more of the sub-targets may act as constraintswhich cannot be violated. In one example, a first sub-target requiresthe trigger to move to a fully-extended posture, but a second sub-targetdictates that the maximum force cannot exceed five Newtons. A target maybe constant, a time variant profile, or a constant or time-variantfunction of one or more inputs. Such functions may be defined in anysuitable manner. In one example, the function is a set of points fromwhich the output is linearly interpolated based on the input. In anotherexample, the function is a set of value/range pairs from which the valueis selected when the input is in the corresponding range.

FIG. 3 schematically shows an example user-input device 300 including aforce-feedback trigger assembly 302. The user-input device 300 may be anexample of the game controller 100 of FIG. 1. The force-feedback triggerassembly 302 is configured to receive user input in the form of touchand/or pull force from a user's finger (e.g., index finger) and furtherprovide force feedback to the user. The force-feedback trigger assembly302 includes a trigger 304 (e.g., trigger 112 of FIG. 1), aforce-feedback motor 306, and a gear train 308 operatively intermediatethe trigger 304 and the force-feedback motor 306.

The trigger 304 is configured to pivot about a trigger axis or otherwisemove under an applied external force (e.g., via a user's index finger).The trigger 304 is rotatable from a fully-extended posture (sometimesreferred to herein as an unpressed posture) through a pivot range to afully-retracted posture (sometimes referred to herein as a fully pressedposture). The pivot range may be any suitable angular range about thetrigger axis. In some implementations, the trigger 304 may be forwardbiased to remain in the fully-extended posture when no external force(e.g., touch force) is applied to the trigger 304. For example, theassembly 302 may include a return spring to forward bias the trigger304.

The force-feedback motor 306 is configured to drive the trigger 304 viathe gear train 308 to adjust a user-perceived state of the trigger 304.The force-feedback motor 306 has a fixed position within the triggerassembly 302 and does not move with the trigger 302. For example, themotor may be coupled in a fixed position to the frame or the housing ofthe user-input device 300. The force-feedback motor 306 may be activatedto provide a user-perceived resistance (e.g., pull weight, soft stop,hard stop), return assistance, vibration, or another form of forcefeedback via the trigger 304. The force-feedback motor 306 may includeany suitable type of motor that can provide an appropriate torque andspeed response for force feedback. Non-limiting examples of motors thatmay be used in the force-feedback trigger assembly 302 include a brusheddirect current (DC) motor, a brushless DC motor, and a stepper motor.The brushed DC motor may be less expensive, but louder, not as compact,and less power efficient than the brushless DC motor.

The force-feedback motor 306 may be configured to drive the trigger 304in any suitable manner. The force-feedback motor 306 may operate at anysuitable speed and in any suitable direction to output torque to achievea desired user-perceived state of the trigger 304. Further, theforce-feedback motor 306 may rotate in different directions to adjustthe trigger 304 differently. For example, the force-feedback motor 306may rotate in different directions to pivot the trigger 304 in differentdirections about the trigger axis (e.g., forward direction toward thefully-extended posture or the backward direction toward thefully-retracted posture). In another example, the force-feedback motor306 may alternate between rotating in a forward direction and a backwarddirection to generate a desired series of pulses or vibrations. Theperiod, speed, and/or frequency of rotation in either direction may bevaried to adjust the amplitude of the pulses/vibrations.

The gear train 308 may operatively connect the force-feedback motor 306to the trigger 304 in any suitable arrangement that allows theforce-feedback motor 306 to selectively drive the trigger 304. The geartrain 308 may include one or more reduction gears configured to providespeed and/or torque conversions from the force-feedback motor to thetrigger 304. The reduction gears may provide any suitable magnitude ofspeed/torque conversion/reduction. The gear train 308 may include anysuitable type of gear(s). Non-limiting examples of gears that may beused in the gear train 308 include rotary spur gears, rack-and-piniongears, helical gears, herringbone gears, planetary gears, worm gears,and bevel gears. Furthermore, gear train 308 may include any othersuitable torque-transferring elements such as shafts, couplings, beltsand pulleys, chains and sprockets, clutches, and differentials.

In some implementations, the gear train 308 may include a clutch 310operatively intermediate the trigger 304 and the force-feedback motor306. The clutch 310 is configured to mechanically change engagementbetween the trigger 304 and the force-feedback motor 306. For example,when the clutch 310 is engaged, the force-feedback motor 306 drives thetrigger 304 via the clutch 310 to adjust a user-perceived state of thetrigger 304. In another example, when the clutch 310 is disengaged, theforce-feedback motor 306 may drive the clutch 310, but since the clutchis not engaged, the clutch 310 does not drive the trigger 304. In yetanother example, the clutch 310 may lessen or mitigate a drag of theforce-feedback motor 306 (and at least some of the gear train 308) fromthe trigger 304.

In some implementations, the clutch 310 may be a one-way clutchconfigured to disengage the trigger 304 from the force-feedback motor306 when the trigger 304 pivots in the forward direction toward thefully-extended posture. In this way, the motor drag may be lessened ormitigated from the trigger 304 whenever the trigger 304 is released froma user's finger in order to provide a faster return rate of the trigger304.

In some implementations, the clutch 310 may be an active/electronicclutch that disengages the trigger 304 from the force-feedback motor 306via electronically controlled actuation. For example, the active clutchmay include a solenoid that is actuated based on a control signal toselectively break the mechanical linkage between the trigger 304 and theforce-feedback motor 306. In other examples, the active clutch mayinclude another motor, a piezo, an electromagnetic or electrostaticclutch, or any other suitable mechanism for engaging and disengagingtrigger 304 from force-feedback motor 306.

The user-input device 300 further includes a sensor subsystem 312including one or more sensors configured to determine aspects of theforce-feedback trigger assembly 302. The sensor subsystem 312 mayinclude any suitable number of sensors and any suitable type of sensorsto determine aspects of the force-feedback trigger assembly 302.

The sensor subsystem 312 may include a posture sensor 314 configured todetermine a posture of the trigger 304 about the trigger axis. Thedetermined posture may include one or more motion parameters of thetrigger 304, such as displacement, velocity, acceleration, angle,absolute position, or a combination thereof. Non-limiting examples oftypes of posture sensors that may be employed include mechanical sensors(e.g., limit switch), optical sensors (e.g., optical encoder or opticalbreak sensor), magnetic sensors (e.g., magnetic reed switch or magneticencoder), capacitive sensors, potentiometers, or a combination thereof.In one example, a magnet is coupled to the trigger 304, and the posturesensor 314 includes a Hall effect sensor configured to determine theposture of the trigger 304 based on the position of the magnet relativeto the Hall effect sensor. The posture sensor 314 may be configured tosend a posture signal 326 that communicates the posture of the trigger302 to a force-feedback control system 334.

The sensor subsystem 312 may include a force sensor 316 configured todetermine an actuation force applied to the trigger 304 by a user'sfinger. The force sensor 316 may take any suitable form and may bepositioned in any suitable manner within the assembly 302 to determinethe actuation force applied to the trigger 302. For example, the forcesensor 316 may be integrated into the trigger 304. In particular, theforce sensor 312 may be operatively intermediate a finger-interfaceportion and a motor-interface portion of the trigger 304. For example,in some such implementations, the force sensor 316 may include a pair ofcapacitive plates configured to determine the actuation force based on arelative capacitance between the pair of capacitive plates. In anotherexample, the force sensor 316 may include a torque gauge operativelyintermediate the force-feedback motor 308 and the trigger 304, such asintegrated into a gear in the gear train 308. In yet another example,the force sensor 316 may include a current monitoring device configuredto determine the actuation force from a motor current of theforce-feedback motor 308. The force sensor 316 may be configured to senda force signal 328 that communicates and actuation force applied to thetrigger 302 to the force-feedback control system 334.

The sensor subsystem 312 may include a touch sensor 318 operativelycoupled to the trigger 304 and configured to detect a finger touch onthe trigger 304. The touch sensor 318 may take any suitable form. Forexample, the touch sensor 318 may be capacitive, resistive, or optical.In some implementations, touch sensor 318 additionally or alternativelymay be configured to detect touch on the trigger 304 and/or a finger inproximity to the trigger 304. Furthermore, touch sensor 318 may be usedto sense an approximate distance of the finger from trigger 304. Assuch, touch sensor 318 may be used either as a binary sensor thatdetects whether a finger is present or as an analog sensor that detectsthe approximate position of the finger if the finger is present. In oneexample, the touch sensor 318 may include one or more capacitive platesoperatively coupled to a finger-interface portion of the trigger 304 andconfigured to detect a finger touch based on a capacitance of the fingerto a plate or between a pair of plates. In one example implementation, apair of capacitive plates may act as a force sensor by detecting thechange in capacitance between the plates as the plates are compressedtogether. In some implementations, a pair of plates may be used as botha touch sensor and a force sensor. The touch sensor 318 may beconfigured to send a touch signal 300 that communicates a detectedfinger touch on the trigger 302 to the force-feedback control system334.

The user-input device 300 includes a communication subsystem 320configured to communicatively couple the user-input device 300 with acomputing device 322. The computing device 322 may take any suitableform, such as a game console, desktop computer, laptop computer, mobilecomputer (e.g., smartphone), augmented-reality computer, orvirtual-reality computer. The communication subsystem 320 may includeany suitable communication hardware to enable communication with thecomputing device 322 according to any suitable communication protocol(e.g., Wi-Fi, Bluetooth). The communication subsystem 320 may beconfigured to send various signals to communicate the state of theforce-feedback trigger assembly 302 to the computing device 322. Forexample, the communication subsystem 320 may be configured to send theposture signal 326, the force signal 328, and/or the touch signal 330 tothe computing device 322. The computing device 322 may be configured toexecute an application 324, such as a video game, and the computingdevice 322 may use these signals to control execution of theapplication.

Furthermore, the communication subsystem 320 may be further configuredto receive, from the computing device 322, one or more force-feedbacksignals 332 configured to activate the force-feedback motor 308 to drivethe trigger 304. In some implementations, the force-feedback controlsystem 334 may be configured to receive, via the communication subsystem320, the force-feedback signal 332 from the computing device 322. Inother implementations, the force-feedback control system 334 may beconfigured to generate the force-feedback signal 332 instead of thecomputing device 322. The force-feedback control system 334 may beconfigured to control the force-feedback motor 306 based on theforce-feedback signal 332 to adjust a user-perceived state of thetrigger 304 in any suitable manner. The force-feedback signal 332 may bedetermined from any suitable parameters, conditions, states, and/orother information. For example, the force-feedback signal may be basedat least on one or more of the posture signal 326, the force signal 328,and the touch signal 330. Alternatively, or additionally, theforce-feedback signal 332 may be based on a parameter of the computingdevice 322, such as a game parameter of a video game. Further still, theforce-feedback signal 332 may be based at least on a user's preferences.For example, a user may specify a desired trigger resistance (e.g., apull weight), and the force-feedback signal 332 may be configured toactivate the force-feedback motor to provide the desired resistance. Insome implementations, the computing device 322 may send other signals tothe user-input device 300 to control various aspects of the user-inputdevice. For example, in a configuration that uses an active/electronicclutch, the computing device may send a control signal to control clutchengagement.

The force-feedback control system 334 may include any suitable hardwarecomponents to control operation of the force-feedback trigger assembly302 and/or other components of the user-input device 300. In oneexample, the force-feedback control system 334 includes amicroprocessor. The force-feedback control system 334 may be an exampleof the microcontroller 124 of FIG. 1.

In some implementations, the user-input device 300 and the computingdevice 322 may be incorporated into a single device. For example, theuser-input device 300 and the computing device 322 may form astand-alone handheld gaming device. In some implementations, thecomputational functions/operations of the user-input device 300 and thecomputing device 322 may be performed by a single microprocessor (e.g.,force-feedback control system 334) that is integral to the user-inputdevice 300.

In some implementations, the force-feedback control system 334 may beconfigured to control the force-feedback motor 306 based on one or moreforce-feedback definitions 336. For example, a force-feedback definitionmay be a data structure representing one or moreresistance/assistance/vibration profiles that may be used throughout thecourse of playing a video game or interacting with an application. Insome implementations, the computing device 322 may send one or moreforce-feedback definitions 336 to the game controller 100. In otherimplementations, the force-feedback control system 334 may be pre-loadedwith one or more force-feedback definitions 336. In some suchimplementations, the force-feedback control system 334 may controloperation of the force-feedback motor 306 to drive the trigger 304without being required to communicate with the computing device 322. Insome implementations, the force-feedback control system 334 may continueto receive operating parameters (e.g., video game parameters) from thecomputing device 322 that affect how the force-feedback control system334 uses the force-feedback definition(s) to control the force-feedbackmotor 306. In such implementations, since force-feedback processing ishandled on-board by the force-feedback control system 334, the forcefeedback control loop does not depend on processing by the computingdevice 322. In this way, force-feedback control may be provided in afast manner, such as fast enough to be perceived by the usersubstantially in real-time.

FIGS. 4-8 and 10-12 show different example force-feedback triggerassemblies that may be incorporated into a user-input device, such asthe user input device 100 of FIG. 1 or the user-input device 300 of FIG.3. FIGS. 4A-4B show an example force-feedback trigger assembly 400 inwhich a trigger 402 interfaces with a force-feedback motor 404 via asector gear 406 also referred to as an arched gear. The trigger 402 isconfigured to pivot about a trigger axis 408 of a mounting frame 410.The mounting frame 410 may be incorporated into a housing of auser-input device to secure the trigger 402 in the user-input device.The trigger 402 pivots about the trigger axis 408 between afully-extended posture shown in FIG. 4A and a fully-retracted postureshown in FIG. 4B. The fully-extended posture and the fully-retractedposture define the boundaries of a pivot range or range of rotation ofthe trigger 402.

The trigger 402 includes a finger-interface portion 412 and amotor-interface portion 414 that opposes the finger-interface portion412. The finger-interface portion 412 is externally oriented andconfigured to receive an actuation force applied by a user's finger topivot the trigger 402 away from the fully-extended posture. Themotor-interface portion 414 is internally oriented and configured tointerface with the force-feedback motor 404 such that the force-feedbackmotor 404 can drive the trigger 402 when the force-feedback motor 404 isactivated. In particular, the sector gear 406 is arranged on themotor-interface portion 414 and includes a plurality of gear teeth 416arranged on an outer, convex side of the sector gear 406. The pluralityof gear teeth 416 are configured to mesh with a drive gear 418 of theforce-feedback motor 404. The drive gear 418 is a rotary gear fixed onan output shaft 420 of the force-feedback motor 404. Drive gear 418 maybe any suitable type of gear including a spur gear, a helical gear, abevel gear, a crown gear, a worm gear, or an elliptical gear. In otherimplementations, driver gear 418 may be a drive pulley or drive sprocketthat interfaces with a belt or chain. When the force-feedback motor 404is activated, the output shaft 420 rotates the drive gear 418 thatmeshes with the gear teeth 416 of the sector gear 406 to drive thetrigger 402. The force-feedback motor 404 may be mounted to the mountingframe 410 in a fixed position such that the force-feedback motor 404does not move with the trigger 402 when the trigger 404 pivots about thetrigger axis 408. Such a configuration may be referred to as afixed-gear, force-feedback configuration.

A trigger return spring 422 may be configured to forward bias thetrigger 402 toward the fully-extended posture. The trigger return spring422 may take any suitable form. In the illustrated example, the triggerreturn spring 422 is a torsion spring wrapped around the trigger axis408 to apply a spring force between the mounting frame 410 and thetrigger 402 to forward bias the trigger 402.

The force-feedback motor 404 may be configured to rotate in a clockwisedirection or a counter-clockwise direction. When the force-feedbackmotor 404 rotates in the clockwise direction, the drive gear 418 rotatescorrespondingly and drives the sector gear 406 to pivot the trigger 402about the trigger axis 408 in a counter-clockwise direction. In thiscase, the trigger 402 pivots/retracts inward away from thefully-extended posture and toward the fully-retracted posture. When theforce-feedback motor 404 rotates in the counter-clockwise direction, thedrive gear 418 rotates correspondingly and drives the sector gear 406 topivot the trigger 402 about the trigger axis 408 in a clockwisedirection. In this case, the trigger 402 pivots/extends outward towardthe fully-extended posture and away from the fully-retracted posture.

In some cases, depending on the actuation force applied by a user'sfinger to the finger-interface portion 412 of the trigger 402, anactivation force/torque output by the force-feedback motor 404 may notactually pivot the trigger 402, and instead may provide a user-perceivedresistance that opposes the actuation force of the user's finger.

A posture of the trigger 402 may be determined by a posture sensor. Inthe illustrated implementation, the trigger 402 includes a troughconfigured to retain a magnet 424 such that the magnet is coupled to thetrigger 402. A Hall effect sensor may be configured to determine theposture of the trigger 402 based on the position of the magnet 424relative to the Hall effect sensor. In one example, the determinedposture is an absolute position of the trigger 402 within the pivotrange of the trigger 402.

The trigger 402 may be formed from any suitable material. For example,the trigger 402 may include plastic or metal. In some implementations,the trigger 402 may be a single formed component, such as a moldedplastic part or a machined metal part. In such implementations, thesector gear 406 may be integrated into the single component. In otherimplementations, the trigger 402 may include a plurality of componentsin an assembly. For example, the user-interface portion 412 and themotor-interface portion 414 may be separate components that are coupledtogether.

Sector gear 406 may be any suitable type of gear including a spur gear,a helical gear, a bevel gear, a crown gear, or an elliptical gear. Thesector gear 406 may have any suitable arc shape including any suitablearc angle and/or arc radius. Further, the sector gear 406 may beoriented on the motor-interface portion 414 in any suitable manner tomesh with the drive gear 418. In some implementations, the plurality ofgear teeth may be arranged on an interior, concave side of the sectorgear 406 instead of being oriented on an outer, convex side. In such aconfiguration, the sector gear 406 may extend outward from the trigger402 or the trigger 402 may form a cut-out in order to accommodate thedrive gear 418. Such a configuration may be more compact relative to theillustrated example, but may also restrict the size of the motor/drivegear that may be used to drive the trigger.

The sector gear force-feedback trigger assembly provides a compactarrangement, because the sector gear can be incorporated directly intothe trigger. Moreover, the drive gear of the motor may interfacedirectly with the sector gear without requiring additional reductiongears or other intermediate gears. Although, in some implementations,the force-feedback trigger assembly may include additional gearsoperatively intermediate the drive gear and the sector gear.

FIGS. 5A-5B show an example force-feedback trigger assembly 500 in whicha trigger 502 interfaces with a force-feedback motor 504 via a rack gear506. The trigger 502 is configured to pivot about a trigger axis 508 ofa mounting frame 510. The mounting frame 510 may be incorporated into ahousing of a user-input device to secure the trigger 502 in theuser-input device. The trigger 502 pivots about the trigger axis 508between a fully-extended posture shown in FIG. 5A and a fully-retractedposture shown in FIG. 5B. The fully-extended posture and thefully-retracted posture define the boundaries of a pivot range or rangeof rotation of the trigger 502. A trigger return spring 512 may beconfigured to forward bias the trigger 502 toward the fully-extendedposture.

The trigger 502 includes a finger-interface portion 514 and amotor-interface portion 516 that opposes the finger-interface portion514. The finger-interface portion 514 is externally oriented andconfigured to receive an actuation force applied by a user's finger topivot the trigger 502 away from the fully-extended posture. Themotor-interface portion 516 is internally oriented and configured tointerface with the rack gear 506. The rack gear 506 is furtherconfigured to interface with the force-feedback motor 504 such that theforce-feedback motor 504 can drive the trigger 502 when theforce-feedback motor 504 is activated. In particular, the rack gear 506includes a plurality of gear teeth 518 configured to mesh with a drivegear 520 of the force-feedback motor 504. The drive gear 518 is apinion/rotary gear fixed on an output shaft 522 of the force-feedbackmotor 504 although in other implementations drive gear 520 may be anysuitable type of gear including a spur gear, a helical gear, a bevelgear, a crown gear, a worm gear, or an elliptical gear. Alternatively,driver gear 520 may be a drive pulley or drive sprocket that interfaceswith a belt or chain. When the force-feedback motor 504 is activated,the output shaft 522 rotates the drive gear 520 that meshes with thegear teeth 518 of the rack gear 506 to laterally translate the rack gear506 and drive the trigger 502. In some implementations, force-feedbacktrigger assembly 500 may include additional gears or any other suitabletorque-transferring elements such as shafts, couplings, belts andpulleys, chain and sprockets, clutches, and differentials intermediateforce-feedback motor 504 and rack gear 506.

The rack gear 506 interfaces with the trigger 502 via a guidedconnection that allows the trigger 502 to move relative to the rack gear506 within a designated range of movement. Such a guided connectionallows the trigger 502 to remain connected to the rack gear 506 as thetrigger pivots about the trigger axis 508 and the rack gear moveslaterally. The trigger 502 may be guidedly connected with the rack gear506 in any suitable manner. In the illustrated example, the trigger 502and the rack gear 506 collectively form a pin-in-slot mechanism 524 thatguidedly connects the trigger 502 with the rack gear 506. In particular,a slot 526 is formed in the motor-interface portion 516 of the trigger502. A pin 528 extends from the rack gear 506 and into the slot 526 suchthat the pin 528 moves relative to the slot 526 as the trigger 502pivots about the trigger axis 508 and the rack gear 506 laterallytranslates. As shown in FIG. 5A, when the trigger 502 is fully-extended,the pin 528 is positioned at a top end of the slot 526. Further, asshown in FIG. 5B, when the trigger 502 is fully-retracted, the pin 528is positioned in a middle section of the slot 526. The slot 526 may besized to accommodate any suitable pivot range of the trigger 502 and/oramount of lateral translation of the rack gear 506.

In other implementations, the slot may be formed in the rack gear andthe pin may be formed by the trigger to collectively form a pin-in-slotmechanism that is functionally equivalent.

An additional pin-in-slot mechanism 530 is collectively formed by therack gear 506 and the mounting frame 510. This pin-in-slot mechanism 530may guidedly connect the rack gear 506 with the frame 510 to provideadditional stability to the rack gear 506 as it translates laterally todrive the trigger 502. As shown in FIG. 5A, when the trigger 502 isfully-extended, the rack gear 506 is translated forward such that thepin is positioned at a front end of the slot. Further, as shown in FIG.5B, when the trigger 502 is fully-retracted, the rack gear 506 istranslated backward such that the pin is positioned in a middle sectionof the slot.

The force-feedback motor 504 may be configured to rotate in a clockwisedirection or a counter-clockwise direction. When the force-feedbackmotor 504 rotates in the clockwise direction, the drive gear 520 rotatescorrespondingly and drives the rack gear 506 forward to pivot thetrigger 502 about the trigger axis 508 in a clockwise direction. In thiscase, the trigger 502 pivots/extends outward toward the fully-extendedposture and away from the fully-retracted posture. When theforce-feedback motor 504 rotates in the counter-clockwise direction, thedrive gear 520 rotates correspondingly and drives the rack gear 506backwards to pivot the trigger 502 about the trigger axis 508 in acounter-clockwise direction. In this case, the trigger 502pivots/retracts inward away from the fully-extended posture and towardthe fully-retracted posture.

In some cases, depending on the actuation force applied by a user'sfinger to the finger-interface portion 514 of the trigger 502, anactivation force/torque output by the force-feedback motor 504 may notactually pivot the trigger 502, and instead may provide a user-perceivedresistance that opposes the actuation force of the user's finger.

In some implementations, the rack gear may be forward-biased toward theuser-actuatable trigger. For example, a rack return spring may beoperatively intermediate the mounting frame 510 and the rack gear 506.The rack return spring may be configured to forward bias the rack gear506 to interface with the trigger 502 and further forward bias thetrigger 502 toward the fully-extended posture. The rack return springmay help speed up a return response of the trigger 502 to thefully-extended posture when the user's finger is lifted from the trigger502. In some cases, the spring force of the rack return spring may begreater than a drag of the motor/gear on the trigger 502. In some suchimplementations, the trigger return spring 512 may be omitted in favorof the rack return spring.

In some implementations, the rack gear 506 may not connect to thetrigger 502, but instead may abut against the trigger. In suchimplementations, the rack gear 506 may drive the trigger 502 only in theforward direction based on activation of the force-feedback motor 504.In this way, the rack gear 504 can provide user-perceived resistance andreturn assistance to the trigger 502. However, the rack gear 506 wouldbe unable to retract/pivot the trigger 502 toward the fully-retractedposture without actuation force provided by the user's finger.

Furthermore, in some such implementations, the force-feedback motor 504may be configured to selectively drive the rack gear 506 to a positionwhere the rack gear 506 does not interface with the trigger 502 duringany point in the pivot range of the trigger 502. In other words, therack gear 504 may be positioned to provide no force-feedback to thetrigger 502 (and no drag from the motor/gears). Instead, the trigger 502is only subject to the forward bias of the trigger return spring 508 andthe actuation force of the user's finger. Such a configuration may bepreferred by some users that do not want force feedback from thetrigger. This is one of many different settings that may be provided tocater to the individual preferences of different users.

The rack gear force-feedback trigger assembly may provide force feedbackin a quiet and stable manner, because the rack gear translates laterallyand is additionally stabilized by the mounting frame.

FIGS. 6A-6D show an example force-feedback trigger assembly 600 in whicha trigger 602 interfaces with a force-feedback motor 604 via a rack gear606 and an adjustable tension trigger return spring 608. The trigger 602is configured to pivot about a trigger axis 610 of a mounting frame 610.The mounting frame 610 may be incorporated into a housing of auser-input device to secure the trigger 602 in the user-input device.The trigger 602 pivots about the trigger axis 610 between afully-extended posture shown in FIGS. 6A and 6C and a fully-retractedposture shown in FIGS. 6B and 6D. The fully-extended posture and thefully-retracted posture define the boundaries of a pivot range or rangeof rotation of the trigger 602.

The trigger return spring 608 is operatively intermediate the 602trigger and the rack gear 606. In some implementations, the triggerreturn spring 608 may be incorporated into the rack gear 606. Forexample, the rack gear 606 may include a telescoping portion that housesthe trigger return spring 608. In other implementations, the triggerreturn spring 608 may be separate from the rack gear 606 and coupled tothe rack gear 606.

The trigger return spring 608 interfaces with the trigger 602 via aguided connection that allows the trigger 602 to move relative to thetrigger return spring 608 within a designated range of movement. Such aguided connection allows the trigger 602 to pivot about the trigger axis610 based on lateral translation of the rack gear 606 that drives thetrigger 602. The trigger 602 may be guidedly connected with the triggerreturn spring 608 in any suitable manner. In the illustrated example,the trigger 602 and the trigger return spring 608 collectively form apin-in-slot mechanism 614 that guidedly connects the trigger 602 withthe trigger return spring 608. In particular, a slot 616 is formed in amotor-interface portion 618 of the trigger 602. A pin 620 extends fromthe trigger return spring 608 and into the slot 620 such that the pin620 moves relative to the slot 616 as the trigger 602 pivots about thetrigger axis 610 and the trigger return spring 608/rack gear 606translates laterally. The slot 616 may be positioned on themotor-interface portion 618 such that the slot 616 is spaced apart fromthe trigger axis 610 to allow for a great enough range of travel of thepin 620 within the slot 616 to allow the trigger 602 to pivot. Forexample, the slot 616 may be positioned on a portion of the trigger 602that opposes the trigger axis 610.

The trigger return spring 608 is configured to forward bias the trigger602 toward the fully-extended posture. A spring force applied to thetrigger 602 by the trigger return spring 608 may be dynamically adjustedbased on a position of the rack gear 606 that may be driven by theforce-feedback motor 604. As shown in FIGS. 6A and 6B, the rack gear 606is laterally translated backward away from the trigger 602. Thisposition of the rack gear 606 allows the trigger return spring 608 toexpand, and thus reduces the spring force applied to the trigger 602. Asshown in FIGS. 6C and 6D, the rack gear 606 is laterally translatedforward toward the trigger 602. This position of the rack gear 606compresses the trigger return spring 608, and thus increases the springforce applied to the trigger 602.

The force-feedback motor 604 is configured to drive the rack gear 606 toadjust the spring force applied to the trigger 602 by the trigger returnspring 608. In particular, the rack gear 606 includes a plurality ofgear teeth 622 configured to mesh with a drive gear 624 of theforce-feedback motor 604. The drive gear 624 is a pinion/rotary gearfixed on an output shaft 626 of the force-feedback motor 604. When theforce-feedback motor 604 is activated, the output shaft 626 rotates thedrive gear 624 that meshes with the gear teeth 622 of the rack gear 606to laterally translate the rack gear 606 and adjust the spring tensionof the trigger return spring 608. Moreover, the force-feedback motor 604may be configured to, in some cases, drive the rack gear 606 to providea force/resistance greater than the spring force of the trigger returnspring 608. For example, the force-feedback motor 604 may drive the rackgear 606 to provide a hard stop at a designated posture within the pivotrange of the trigger 602. The hard stop does not allow an actuationforce applied by the user's finger to easily retract/pivot the trigger602 beyond the designated posture of the hard stop.

The force-feedback motor 604 may be configured to rotate in a clockwisedirection or a counter-clockwise direction. When the force-feedbackmotor 604 rotates in the clockwise direction, the drive gear 624 rotatescorrespondingly and drives the rack gear 606 forward to compress thetrigger return spring 608 and/or pivot the trigger 602 about the triggeraxis 610 in a clockwise direction. As shown in FIGS. 6A and 6B, the rackgear 606 is translated forward to compress the trigger return spring608. As such, the activation force required by the user's finger toretract the trigger 602 from the fully-extended posture in FIG. 6A tothe retracted posture in FIG. 6B is higher.

When the force-feedback motor 604 rotates in the counter-clockwisedirection, the drive gear 624 rotates correspondingly and drives therack gear 606 backwards to allow the trigger return spring 608 to expandand/or pivot the trigger 602 about the trigger axis 610 in acounter-clockwise direction. As shown in FIGS. 6C and 6D, the rack gear606 is translated backward to allow the trigger return spring 608 toexpand. As such, the activation force required by the user's finger toretract the trigger 602 from the fully-extended posture in FIG. 6C tothe retracted posture in FIG. 6D is lower.

The adjustable spring tension force-feedback assembly allows the triggerreturn tension/spring bias to be adjusted at a highly granular level tocater to the individual preferences of different users. Moreover, thetrigger return tension may be adjusted in a manner that is powerefficient, because the force-feedback motor only needs to be activatedto drive the rack gear to maintain the desired position for the desiredtension/spring. In this way, battery power consumption may be reduced.Although the force-feedback motor may be activated to provide otheruser-perceived force feedback effects as desired.

FIGS. 7A, 7B, and 8 show an example force-feedback trigger assembly 700in which a trigger 702 interfaces with a force-feedback motor 704 via aclutch 706. The trigger 702 is configured to pivot about a trigger axis708 of a mounting frame 710. The mounting frame 710 may be incorporatedinto a housing of a user-input device to secure the trigger 702 in theuser-input device. The trigger 702 pivots about the trigger axis 708between a fully-extended posture shown in FIG. 7A and a fully-retractedposture shown in FIG. 7B. The fully-extended posture and thefully-retracted posture define the boundaries of a pivot range or rangeof rotation of the trigger 702.

The trigger 702 includes a finger-interface portion 712 and amotor-interface portion 714 that opposes the finger-interface portion712. The motor-interface portion 414 includes a sector gear 716configured to mesh with a smaller gear 718 (shown in FIG. 8) of theclutch 706. The clutch 706 further includes a larger gear 720 configuredto mesh with a drive gear 722 of the force-feedback motor 704. The drivegear 722 is fixed on an output shaft 724 of the force-feedback motor704. When the force-feedback motor 704 is activated, the output shaft724 rotates the drive gear 720 that drives the larger gear of the clutch706.

The clutch 706 is configured to mechanically change engagement betweenthe trigger 702 and the force-feedback motor 704. When theforce-feedback motor 704 is activated and the clutch 706 engages theforce-feedback motor 704 with the trigger 702, the force-feedback motor704 drives the clutch 706, and the clutch 706 drives the trigger 702 toadjust a user-perceived state (e.g., resistance, hard stop, vibration)of the trigger 702. When the force-feedback motor 704 is activated andthe clutch 706 disengages the force-feedback motor 704 from the trigger702, the force-feedback motor 704 drives the clutch 706, and the clutch706 does not drive the trigger 702. When the force-feedback motor 704 isnot activated and the clutch 706 disengages the force-feedback motor 704from the trigger 702, the clutch 706 lessens or mitigates a drag of theforce-feedback motor 704 from the trigger 702. In this way, the trigger702 may pivot freely (with spring bias) without the force-feedback motor704 affecting the motion response of the trigger 702.

Note that although the clutch 706 may change engagement between theforce-feedback motor 704 and the trigger 702, the clutch 706 remainsphysically coupled to the force-feedback motor 704 and the trigger 702via the larger and smaller gears of the clutch 706.

A trigger return spring 726 may be configured to forward bias thetrigger 702 toward the fully-extended posture. The trigger return spring726 may take any suitable form. In the illustrated example, the triggerreturn spring 726 is a torsion spring wrapped around the trigger axis708 to apply a spring force between the mounting frame 710 and thetrigger 702 to forward bias the trigger 702.

The force-feedback motor 704 may be configured to rotate in a clockwisedirection or a counter-clockwise direction. When the force-feedbackmotor 704 rotates in the clockwise direction and the clutch 706 isengaged, the drive gear 722 rotates correspondingly and drives thesector gear 716 to pivot the trigger 702 about the trigger axis 708 in acounter-clockwise direction. In this case, the trigger 402pivots/retracts inward away from the fully-extended posture and towardthe fully-retracted posture. When the force-feedback motor 704 rotatesin the counter-clockwise direction and the clutch 706 is engaged, thedrive gear 722 rotates correspondingly and drives the sector gear 716 topivot the trigger 702 about the trigger axis 708 in a clockwisedirection. In this case, the trigger 702 pivots/extends outward towardthe fully-extended posture and away from the fully-retracted posture.

In some cases, depending on the actuation force applied by a user'sfinger to the finger-interface portion 712 of the trigger 402, anactivation force/torque output by the force-feedback motor 704 may notactually pivot the trigger 702, and instead may provide a user-perceivedresistance that opposes the actuation force of the user's finger.

In some implementations, the clutch 706 may be a one-way clutchconfigured to disengage the trigger 702 from the force-feedback motor704 when the trigger 702 pivots in a forward direction toward thefully-extended posture. The one-way clutch may automatically lessen ormitigate the drag of the force-feedback motor 704 from the trigger 702whenever the user's finger lifts from the finger-interface portion 712and/or reduces actuation force on the trigger 702 below a thresholdactuation force. When the motor drag is lessened or mitigated from thetrigger 702 by the clutch 706, the trigger 702 pivots in the forwarddirection due to the forward bias of the trigger return spring 726 withless drag from the motor. In this way, the trigger 702 may have a fastresponse rate to return to the fully-extended posture.

FIG. 9 shows a cross-sectional view of an example one-way clutch 900that may be implemented in a force-feedback trigger assembly, such asassembly 700 of FIGS. 7A, 7B, and 8. The one-way clutch 900 includes alarger gear 902 and a smaller gear 904 separated by an intermediate slipstructure 906. The slip structure 906 is fixed to the smaller gear 904and selectively engages the larger gear 902. A plurality of ballbearings 906 are arranged around a circumference of the slip structure906. In particular, each ball bearing 906 is situated in a correspondingcavity 910 formed in the slip structure 906. Each ball bearing 906 isbiased outward by an associated spring 912 that is positioned underneaththe ball bearing 906 in the cavity 910 such that the ball bearingcontacts the larger gear 902.

According to this configuration, when the larger gear 902 rotatesclockwise, the larger gear 902 traps the ball bearings 906 against asidewall of the cavity 910 that causes the slip structure 906 andcorrespondingly the smaller gear 904 to remain fixed relative to thelarger gear 902. As such, the smaller gear 904 and the larger gear 902may rotate clockwise together. When the larger gear 902 rotatescounter-clockwise, the larger gear 902 presses the ball bearings 906into an adjacent free space 914 in the cavity 910 such that the ballbearings do not engage the slip structure 906 with the larger gear 902.As such, the larger gear 902 may rotate counter-clockwise, and thesmaller gear 904 may remain still.

The one-way clutch 900 is provided as an example and is meant to benon-limiting. In other implementations, the one-way clutch may includerollers or gears instead of ball bearings. In a geared configuration,the springs may be omitted in favor of a planetary gear arrangement thatforces floating planetary gears into the larger gear in order to engagethe smaller gear with the larger gear.

In some implementations clutch 706 may be a slip clutch, rotary frictionclutch, or breakaway clutch such that clutch 706 transfers torquebetween force feedback motor 704 and trigger 702 under normal operation,but if the torque exceeds a certain threshold the clutch slips and onlythe threshold torque, or no torque, is transferred until the torquedrops below the threshold. In this way, the clutch protects forcefeedback motor 704, trigger 702, and any intermediate components bylimiting the maximum force/torque that these components must bear—forexample from the game controller being dropped on the trigger or beingroughly handled by a user.

In some implementations, the clutch may be an active/electronic clutchconfigured to change engagement between the trigger and theforce-feedback motor based on a control signal. For example, the controlsignal may be provided by a computing device in communication with theuser-input device to adjust a user-perceived state of the trigger.

Clutch 706 may take any suitable form to engage and disengage forcefeedback motor 704 from trigger 702. In one example implementation, aninner rotary portion of clutch 706 attaches to a shaft and an outerrotary portion of clutch 706 has gear teeth. Of the shaft and the gear,one interfaces with sector gear 716, a rack gear that engages withtrigger 702, or an intermediate gear or belt and the other interfaceswith the shaft of force feedback motor 704, drive gear 722, or anintermediate gear or belt. In one such implementation, drive gear 722 iscomposed of clutch 706 and the inner rotary portion of clutch 706engages directly with the shaft of force feedback motor 704. In anotherimplementation, clutch 706 engages and disengages two rotatable shaftsone of which interfaces to force feedback motor 704 and one of whichinterfaces to trigger 702.

In one example implementation, clutch 706 is comprised of at least twogears one of which interfaces with force feedback motor 704 and one ofwhich interfaces with trigger 702. Clutch 706 engages and disengagesforce feedback motor 704 from trigger 702 by adjusting the relativeposition of the two gears by switching between a state in which the gearteeth interface and force feedback motor 704 and trigger 702 are engagedand a state in which the gear teeth do not interface and force feedbackmotor 704 and trigger 702 are disengaged. The gears may be switchedbetween interfacing and not interfacing either by translating relativeto each other along the axis of rotation of one of the gears or bytranslating relative to each other normal to the axis of rotation of oneof the gears.

FIGS. 10A-10B show an example force-feedback trigger assembly 1000 inwhich a trigger 1002 interfaces with a force-feedback motor 1004 via asector gear 1006 that moves separately from the trigger 1002. Thetrigger 1002 is configured to pivot about a trigger axis 1008 between afully-extended posture and a fully-retracted posture. The fully-extendedposture and the fully-retracted posture define the boundaries of a pivotrange or range of rotation of the trigger 1002.

The sector gear 1006 is configured to pivot about the trigger axis 1008separately from the trigger 1002. The sector gear 1006 is configured tointerface with the force-feedback motor 1004 such that theforce-feedback motor 1004 can drive the user-actuatable trigger 1002 viathe sector gear 1006 when the force-feedback motor 1004 is activated. Inparticular, the sector gear 1006 includes a plurality of gear teeth 1010arranged on an outer, convex side of the sector gear 1006. The pluralityof gear teeth 1010 are configured to mesh with a drive gear 1012 of theforce-feedback motor 1004. When the force-feedback motor 1004 isactivated, the drive gear 1012 rotates and meshes with the gear teeth1010 of the sector gear 1006 to drive the trigger 1002.

In the depicted implementation, the sector gear 1006 is not lockedagainst the trigger 1002, but may abut against the trigger as shown inFIG. 10A. In such implementations, the sector gear 1006 may drive thetrigger 1002 only in the forward direction based on activation of theforce-feedback motor 1004. In this way, the sector gear 1004 can provideuser-perceived resistance and return assistance to the trigger 1002.However, the sector gear 1006 would be unable to retract/pivot thetrigger 1002 toward the fully-retracted posture without actuation forceprovided by the user's finger.

As shown in FIG. 10B, the force-feedback motor 1004 may be configured toselectively drive the sector gear 1006 to a position where the sectorgear does not interface with the trigger 1002 during any point in thepivot range of the trigger 1002. In other words, the sector gear 1006may be positioned to provide no force-feedback to the trigger 1002 (andno drag from the motor/gears). Instead, the trigger 1002 may be subjectto the forward bias of a trigger return spring (when included) and theactuation force of the user's finger. Such a configuration may bepreferred by some users that do not want force feedback from thetrigger. This is one of many different settings that may be provided tocater to the individual preferences of different users.

FIG. 11 shows an example force-feedback trigger assembly 1100 in which atrigger 1102 interfaces with a force-feedback motor 1104 via a sectorgear 1106 and an adjustable tension trigger return spring 1108. Thetrigger 1102 is configured to pivot about a trigger axis 1110. Thetrigger 1102 pivots about the trigger axis 1110 between a fully-extendedposture and a fully-retracted posture. The fully-extended posture andthe fully-retracted posture define the boundaries of a pivot range orrange of rotation of the trigger 1102.

The trigger return spring 1108 is operatively intermediate the 1102trigger and the sector gear 1106. The trigger return spring 1108interfaces with the trigger 1102 via a guided connection that allows thetrigger 1102 to move relative to the trigger return spring 1108 within adesignated range of movement. Such a guided connection allows thetrigger 1102 to pivot about the trigger axis 1110 based on rotation ofthe sector gear 1106 that drives the trigger 1102. The trigger 1102 maybe guidedly connected with the trigger return spring 1108 in anysuitable manner. In the illustrated example, the trigger 1102 and thetrigger return spring 1108 collectively form a pin-in-slot mechanism1112 that guidedly connects the trigger 1102 with the trigger returnspring 1108.

The trigger return spring 1108 is configured to forward bias the trigger1102 toward the fully-extended posture. A spring force applied to thetrigger 1102 by the trigger return spring 1108 may be dynamicallyadjusted based on a position of the arched gear 1106 that may be drivenby the force-feedback motor 1104. For example, the force-feedback motor1104 may drive the sector gear 1106 to pivot counter-clockwise away fromthe fully-extended posture of the trigger 1102 that allows the triggerreturn spring 1108 to expand, and thus reduces the spring force appliedto the trigger 1102. On the other hand, the force-feedback motor 1104may drive the sector gear 1106 to pivot clockwise, compresses thetrigger return spring 1108, and thus increases the spring force appliedto the trigger 1102.

The adjustable spring tension force-feedback assembly allows the triggerreturn tension/spring bias to be adjusted at a highly granular level tocater to the individual preferences of different users. Moreover, thetrigger return tension may be adjusted in a manner that is powerefficient, because the force-feedback motor only needs to be activatedto maintain the desired position for the desired tension/spring. In thisway, battery power consumption may be reduced. Although theforce-feedback motor may be activated to provide other user-perceivedforce feedback effects as desired.

FIG. 12 shows an example trigger assembly 1200 including a force sensor1202 configured to determine an actuation force applied to a trigger1204 by a user's finger. The trigger 1204 is configured to pivot about atrigger axis 1206 of a mounting frame 1208. The mounting frame 1208 maybe incorporated into a housing of a user-input device to secure thetrigger 1204 in the user-input device. The trigger 1204 pivots about thetrigger axis 1206. The trigger 1204 includes a finger-interface portion1210 and a motor-interface portion 1212 that opposes thefinger-interface portion 1212. The motor-interface portion 1212 includesa sector gear 1214 configured to mesh with a drive gear 1216 of aforce-feedback motor 1218. The drive gear 1216 is fixed on an outputshaft 1220 of the force-feedback motor 1218. When the force-feedbackmotor 1218 is activated, the output shaft 1220 rotates the drive gear1216 that drives the sector gear 1214 to pivot the trigger 1204.

The force sensor 1202 is operatively intermediate the finger-interfaceportion 1210 and the motor-interface portion 1212. For example, thefinger-interface portion 1210 and the motor-interface portion 1212 maycollectively form a cavity 1222 to hold the force sensor 1202. Thefinger-interface portion 1210 may rotate separately from themotor-interface portion 1212. As such, when an actuation force isapplied to the finger-interface portion 1210 by a user's finger, thefinger-interface portion 1210 compresses the force sensor 1202 againstthe motor-interface portion 1212, and the force sensor 1202 determinesthe actuation force.

The force sensor 1202 may take any suitable form. In someimplementations, the force sensor 1202 may include a strain gauge ordeformable diaphragm that is used to determine force. In otherimplementations, the force sensor 1202 may include a pair of capacitiveplates that are configured to capacitively determine the actuation forcebased on a distance between the capacitive plates. In yet otherimplementations, piezo-electric material, an electro-active polymer, ora force-sensitive resistive material that electrically responds topressure may be used

Furthermore, in some implementations, the force sensor 1202 may takeother forms and may be positioned elsewhere in the force-feedbacktrigger assembly 1200. For example, the force sensor may include atorque gauge operatively intermediate the force-feedback motor 1218 andthe trigger 1204. In one example, the torque gage may be positioned onthe output shaft 1220 or an axle of an intermediate reduction gear whenit is included in the assembly. In yet another example since generallythe instantaneous torque output of an electric motor is proportional toits instantaneous current draw, the force sensor may include a currentmonitoring device configured to determine the actuation force based on amotor current of the force-feedback motor 1218.

In the force-feedback trigger assembly 1200, because the force-feedbackmotor 1218 has a fixed gear relationship with the trigger 1204, a dragof the forced-feedback motor 1218 and the intermediate gear train isapplied to the trigger 1204 when the motor 1218 is not activated (e.g.,being powered). This causes the trigger 1204 to also have a slow returnrate to the fully-extended posture when the user's finger reduces anactuation force applied to the finger-interface portion 1210. This alsorequires the user to press on the finger-interface portion 1210 of thetrigger 1204 with a greater actuation force in order overcome the motordrag when actuating the trigger 1204.

By implementing the force sensor 1202 in the trigger assembly 1000, theactuation force determined by the force sensor 1202 may be used torecognize if the user is attempting to actuate or release the trigger1204. This recognition allows the force-feedback motor 1218 to beactivated in a timely manner to pivot the trigger 1204 in the forwarddirection toward the fully-extended posture. For example, theforce-feedback motor may drive the trigger toward the fully-extendedposture based on the actuation force becoming less than a thresholdforce. In this way, the fixed gear assembly 1200 may provide a quickreturn rate of the trigger 1204 to the fully-extended posture. Moreover,the actuation force determined by the force sensor 1002 may be used toactivate the force-feedback motor 1218 to provide other real-time,force-feedback effects.

It will be appreciated that any of the features of the above describedforce-feedback trigger assemblies may be combined in otherimplementations.

The above described force-feedback trigger assemblies may enable auser-input device to adjust a user-perceived state of a trigger, and theadjustments may change over the course of a pivot range of the trigger.FIGS. 13-15 show different example user-perceived trigger state profilesthat may be enabled by the above described force-feedback triggerassemblies. FIG. 13 shows an example user-perceived resistance profile1300 for a user-actuatable trigger. The resistance profile 1300 isplotted on a graph of trigger resistance versus distance oftravel/pivot/rotation of the trigger. The resistance profile 1300characterizes a trigger resistance that is provided over the course ofthe entire pivot range of the trigger. The origin of the distance axiscorresponds to the fully-extended posture of the trigger. In theillustrated example, as the trigger retracts away from thefully-extended posture and toward the fully-retracted posture at theother end of the pivot range, the resistance applied to the trigger tooppose the actuation force applied by the user's finger increaseslinearly until a designated posture 1302. Once the trigger reaches thedesignated posture 1302, the resistance decreases sharply in a leanermanner for the remainder of the pivot range until the trigger reachesthe fully-retracted posture.

The resistance profile 1300 may be enabled by activating theforce-feedback motor based on a force-feedback signal that is providedby a computing device in communication with the user-input device. Theforce-feedback signal may be based at least on a posture of the triggerand/or an actuation force applied to the trigger by the user's finger.The posture of the trigger may be determined by a posture sensor of theuser-input device and sent to the computing device. The actuation forcemay be determined by a force sensor of the user-input device and sent tothe computing device.

The resistance profile 1300 simulates a trigger pull of a real-world gunthat may be simulated in a video game executed by the computing device.In particular, the posture 1302 at which the resistance is greatest maycorrespond to a point in the trigger pull at which a hammer drops tofire the real-world gun. In other words, the resistance profile 1300mimics the “click” of a gun.

FIG. 14 shows another example user-perceived resistance profile 1400including a hard stop for a user-actuatable trigger. In this resistanceprofile, as the trigger retracts away from the fully-extended postureand toward the fully-retracted posture at the other end of the pivotrange, the resistance applied to the trigger to oppose the actuationforce applied by the user's finger increases linearly until a designatedposture 1402. Once the trigger reaches the designated posture 1402, theresistance increases to a resistance that prevents the user from easilypulling the trigger any further toward the fully-retracted posture. Inother words, a hard stop is created at the designated posture 1402 thateffectively shortens the pivot range of the trigger.

It will be appreciated that a hard stop may be created at any suitableposture within the pivot range of the trigger in order to create anydesired trigger pull length. The shorter pivot range created by theresistance profile 1400 may be desirable to a user to make it easier torapidly fire a virtual weapon in a video game.

FIG. 15 shows an example user-perceived resistance and assistanceprofile 1500 for a user-actuatable trigger. The resistance andassistance profile 1500 is plotted on a graph of triggerresistance/assistance versus time. During a first period 1502, thetrigger resistance provided by the force-feedback motor linearlyincreases to oppose the actuation force applied to the trigger by theuser's finger. During a second period 1504, the trigger resistanceprovided by the force-feedback motor is reduced from a peak resistancedown to zero resistance. The first and second periods collectively forma profile similar to the resistance profile 1300 of FIG. 13. During athird period 1506, it is recognized that the user's finger has beenlifted from the trigger, and the trigger is assisted with an assistanceforce provided by the force-feedback motor to pivot the trigger forwarduntil it reaches the fully-extended posture.

It will be appreciated that the above described profiles are provided asexamples and are meant to be non-limiting. Any suitable resistanceand/or assistance may be provided to adjust a user-perceived state of atrigger.

The above described force-feedback trigger assemblies may enable auser-input device to dynamically change a user-perceived state of atrigger in any suitable manner under any suitable conditions. FIGS.16-18 show different example scenarios in which a user-perceivedresistance profile of a trigger is changed dynamically. FIG. 16 shows anexample scenario in which a user-perceived resistance of auser-actuatable trigger is dynamically changed based on a parameter of acomputing device. In this scenario, a user-input device 1600 is incommunication with a computing device 1602. The user-input device 1600sends trigger assembly state information to the computing device 1602,such as a trigger posture, an actuation force, and/or a detection oftouch input to the trigger. The computing device 1602 sendsforce-feedback signals to the user-input device 1600. The force feedbacksignals are used to control the force-feedback motor to provide theappropriate resistance/assistance to the trigger.

At time T1, the computing device 1602 is operating in a first state, andthe computing device 1602 sends force feedback signals to the user-inputdevice 1600 to control the trigger according to a first resistanceprofile 1604. The first resistance profile 1604 may be selected based ona parameter of the computing device 1602 while operating in the firststate. The first resistance profile 1604 specifies that a triggerresistance is constant across a pivot range of the trigger. For example,the first resistance profile 1604 may be a default profile, and thefirst state of the computing device 1602 may correspond to a state wherea video game is not being executed, and the user is genericallyinteracting with the computing device 1602 via the user-input device1600. In this case, the parameter of the computing device 1602 specifiesusing the default profile.

At time T2, the computing device 1602 is operating in a second state,and the computing device 1602 sends force feedback signals to theuser-input device 1600 to control the trigger according to a secondresistance profile 1606. The second resistance profile 1606 may beselected based on a parameter of the computing device 1602 whileoperating in the second state. The second resistance profile 1606specifies that a trigger resistance increases linearly over the courseof the pivot range until a designated posture at which the resistancedecreases for the remainder of the pivot range. For example, the secondresistance profile 1606 may correspond to a trigger pull of a virtualsemiautomatic weapon, and the second state of the computing device 1602may correspond to a state where a video game is being executed. Inparticular, the video game may be a first-person-shooter (FPS) videogame in which a virtual avatar that is controlled by the user is holdinga virtual semi-automatic weapon where a single bullet is fired each timethe trigger of the user-input device 1600 is pulled. In this case, theparameter of the computing device 1602 is a video game parameter thatspecifies using the profile associated with the virtual semi-automaticweapon.

At time T3, the computing device 1602 is operating in a third state, andthe computing device 1602 sends force feedback signals to the user-inputdevice 1600 to control the trigger according to a third resistanceprofile 1608. The third resistance profile 1608 may be selected based ona parameter of the computing device 1602 while operating in the thirdstate. The third resistance profile 1608 specifies that the triggervibrates or pulses while the trigger is in a designated region 1610 ofthe pivot range. The trigger resistance increases linearly from thefully extended posture to the boundary of the designated region 1610 atwhich point a stop is encountered. This simulates an initial “click” ofthe trigger. Further, while the trigger is in the designated region1610, the trigger vibrates or pulses according to a vibration profile1612. In particular, the force-feedback motor drives the trigger backand forth with alternating resistance and assistance forces based on thevibration profile 1612. For example, the third resistance profile 1608and the vibration profile 1612 may correspond to a trigger pull of avirtual fully-automatic weapon. In this example, the trigger pulses orvibrates as long as the trigger remains in the designated region 1610 ofthe pivot range and the computing device 1602 specifies use of thevibration profile 1612. For example, the trigger may pulse until theuser releases the trigger, the virtual fully-automatic weapon runs outof ammunition (or another parameter of the computing device changes).The third state of the computing device 1602 may correspond to a statewhere the FPS video game is being executed. In particular, the gamestate of the video game may change, because the virtual avatar that iscontrolled by the user is holding a different virtual weapon havingdifferent force-feedback characteristics. In this case, the parameter ofthe computing device 1602 is a video game parameter that specifies usingthe profile associated with the virtual fully-automatic weapon.

FIG. 17 shows an example scenario in which a hard stop of auser-actuatable trigger is dynamically changed based on a state of acomputing device. In this scenario, a user-input device 1700 is incommunication with a computing device 1702. At time T1, the computingdevice 1702 is operating in a first state, and the computing device 1702sends force feedback signals to the user-input device 1700 to controlthe trigger according to a first resistance profile 1704. The firstresistance profile 1704 may be selected based on a parameter of thecomputing device 1702 while operating in the first state. The firstresistance profile 1704 specifies that a trigger resistance is constantacross a pivot range of the trigger to allow the trigger to move throughthe entire pivot range. For example, the first resistance profile 1704may be a default profile, and the first state of the computing device1702 may correspond to a state where a video game is not being executed,and the user is generically interacting with the computing device 1702via the user-input device 1700. In this case, the parameter of thecomputing device 1702 specifies using the default profile.

At time T2, the computing device 1702 is operating in a second state,and the computing device 1702 sends force feedback signals to theuser-input device 1700 to control the trigger according to a secondresistance profile 1706. The second resistance profile 1706 may beselected based on a parameter of the computing device 1702 whileoperating in the second state. The second resistance profile 1706specifies that a trigger has a hard stop at a first designated postureof the pivot range. For example, the second state of the computingdevice 1702 may correspond to a state where the computing device 1702 isexecuting a FPS video game in which a virtual avatar that is controlledby the user is holding a first virtual weapon, and the second resistanceprofile 1706 corresponds to a trigger pull of the first virtual weapon.In this case, the parameter of the computing device 1702 is a video gameparameter that specifies using the profile associated with the firstvirtual weapon.

At time T3, the computing device 1702 is operating in a third state, andthe computing device 1702 sends force feedback signals to the user-inputdevice 1700 to control the trigger according to a third resistanceprofile 1708. The third resistance profile 1708 may be selected based ona parameter of the computing device 1702 while operating in the thirdstate. The third resistance profile 1708 specifies that a trigger has ahard stop at a different designated posture than the second resistanceprofile 1706. For example, the third state of the computing device 1602may correspond to a state where the computing device 1702 is executingthe FPS video game and the virtual avatar is holding a second virtualweapon that is different than the first virtual weapon, and the thirdresistance profile 1708 corresponds to a trigger pull of the secondvirtual weapon. In this case, the parameter of the computing device 1702is a video game parameter that specifies using the profile associatedwith the second virtual weapon.

FIG. 18 shows an example scenario in which a user-perceived resistanceof a user-actuatable trigger is dynamically changed based on a change inuser preference. In this scenario, a user-input device 1800 is incommunication with a computing device 1802. At time T1, the computingdevice 1802 sends force feedback signals to the user-input device 1800to control the trigger according to a first resistance profile 1804 thatis based on a first user preference of a first user. The firstresistance profile 1804 specifies that a trigger resistance is constantacross a pivot range of the trigger. The first resistance profile may beselected based on a user-preference parameter set by the first user.

At time T2, the computing device 1802 sends force feedback signals tothe user-input device 1800 to control the trigger according to a secondresistance profile 1806 that is based on a second user preference of thefirst user. The second resistance profile 1806 specifies that aresistance of the trigger increases linearly over the course of thepivot range of the trigger. The second resistance profile may beselected based on a user-preference parameter set by the first user.

The trigger resistance profile of the first user may automaticallychange based on the type of interaction the first user is having withthe computing device 1802. For example, the first user may use the firstresistance profile for a first video game, and the first user may userthe second resistance profile for a second, different video game. Inanother example, the first user may use the first resistance profile forgeneral computer interactions, such as navigating a website, and thefirst user may use the second resistance profile to play a video game.

At time T3, the computing device 1802 sends force feedback signals tothe user-input device 1800 to control the trigger according to a thirdresistance profile 1808 that is based on a first user preference of asecond user different than the first user. The third resistance profilemay be selected based on a user-preference parameter set by the seconduser. The third resistance profile 1808 specifies that a trigger has ahard stop at a designated posture in the pivot range of the trigger. Attime T3, the computing device 1802 recognizes that a different user isusing the user-input device 1800 (e.g., the second user logs into thecomputing device), and automatically adjusts the resistance profile ofthe trigger based on the user preferences of the second, different user.

It will be appreciated that any suitable force-feedback characteristicof the trigger may be set and/or dynamically changed based on auser-preference parameter of a user. For example, a resistance,resistance profile, trigger tension, hard stop, and other force-feedbackcharacteristics of a trigger may be set and/or dynamically changed basedon user-preference parameters.

The above described scenarios are provided as examples and are meant tobe non-limiting. A motor-driven, force-feedback trigger assembly may becontrolled to dynamically adjust a user-perceived state of a trigger inany suitable manner based on any suitable conditions.

In an example, a user-input device comprises a user-actuatable triggerconfigured to pivot about a trigger axis, a rack gear, a return springoperatively intermediate the user-actuatable trigger and the rack gear,the return spring configured to forward bias the user-actuatable triggertoward an extended posture, a force-feedback motor configured to drivethe rack gear based on a force-feedback signal and thereby adjust aspring force applied by the return spring to the user-actuatabletrigger, and a posture sensor configured to determine a posture of theuser-actuatable trigger about the trigger axis. In this example and/orother examples, the user-actuatable trigger may interface with thereturn spring via a guided connection that allows the user-actuatabletrigger to move relative to the return spring. In this example and/orother examples, the user-actuatable trigger and the return springcollectively may include a pin-in-slot mechanism that forms the guidedconnection. In this example and/or other examples, the pin-in-slotmechanism may include a slot formed by the user-actuatable trigger and apin coupled to the return spring and extending from the return springinto the slot. In this example and/or other examples, the slot may bepositioned on a portion of the user-actuatable trigger that is spacedapart from the trigger axis. In this example and/or other examples, theforce-feedback signal may be determined based at least on the posture ofthe user-actuatable trigger. In this example and/or other examples, theuser-input device may further comprise a communication subsystemcommunicatively coupled to a computing device and configured to send theposture of the user-actuatable trigger to the computing device, andreceive from the computing device the force-feedback signal. In thisexample and/or other examples, the force-feedback signal may bedetermined based at least on a parameter of the computing device. Inthis example and/or other examples, the parameter of the computingdevice may be user-adjustable. In this example and/or other examples,the parameter of the computing device may include a parameter of a videogame executed by the computing device. In this example and/or otherexamples, the user-input device may further comprise one or morereduction gears operatively intermediate the rack gear and theforce-feedback motor.

In an example, a user-input device comprises a user-actuatable triggerconfigured to pivot about a trigger axis, a rack gear, a return springoperatively intermediate the user-actuatable trigger and the rack gear,the return spring interfacing with the user-actuatable trigger via aguided connection that allows the user-actuatable trigger to moverelative to the return spring, the return spring configured to forwardbias the user-actuatable trigger toward an extended posture, aforce-feedback motor configured to drive the rack gear based on aforce-feedback signal and thereby adjust a spring force applied by thereturn spring to the user-actuatable trigger, and a posture sensorconfigured to determine a posture of the user-actuatable trigger aboutthe trigger axis. In this example and/or other examples, theuser-actuatable trigger and the return spring collectively may include apin-in-slot mechanism that forms the guided connection. In this exampleand/or other examples, the pin-in-slot mechanism include a slot formedby the user-actuatable trigger and a pin coupled to the return springand extending from the return spring into the slot. In this exampleand/or other examples, the slot may be positioned on a portion of theuser-actuatable trigger that is spaced apart from the trigger axis. Inthis example and/or other examples, the user-input device may furthercomprise a communication subsystem communicatively coupled to acomputing device and configured to send the posture of theuser-actuatable trigger to the computing device, and receive from thecomputing device the force-feedback signal. In this example and/or otherexamples, the force-feedback signal may be determined based at least ona parameter of the computing device to provide a dynamic change in thespring force. In this example and/or other examples, the parameter ofthe computing device may be user-adjustable. In this example and/orother examples, the parameter of the computing device may include aparameter of a video game executed by the computing device.

In an example, a user-input device comprises a user-actuatable triggerconfigured to pivot about a trigger axis, a rack gear, a return springoperatively intermediate the user-actuatable trigger and the rack gear,the return spring configured to forward bias the user-actuatable triggertoward an extended posture, a force-feedback motor configured to drivethe rack gear based on a force-feedback signal and thereby adjust aspring force applied by the return spring to the user-actuatabletrigger, a posture sensor configured to determine a posture of theuser-actuatable trigger about the trigger axis, and a communicationsubsystem communicatively coupled to a computing device and configuredto send the posture of the user-actuatable trigger to the computingdevice, and receive from the computing device the force-feedback signal,wherein the force-feedback signal is determined based at least on aparameter of the computing device to provide a dynamic change in thespring force.

It will be understood that the configurations and/or approachesdescribed herein are exemplary in nature, and that these specificembodiments or examples are not to be considered in a limiting sense,because numerous variations are possible. The specific routines ormethods described herein may represent one or more of any number ofprocessing strategies. As such, various acts illustrated and/ordescribed may be performed in the sequence illustrated and/or described,in other sequences, in parallel, or omitted. Likewise, the order of theabove-described processes may be changed.

The subject matter of the present disclosure includes all novel andnon-obvious combinations and sub-combinations of the various processes,systems and configurations, and other features, functions, acts, and/orproperties disclosed herein, as well as any and all equivalents thereof.

1. A user-input device comprising: a user-actuatable trigger configuredto pivot about a trigger axis; a rack gear operatively interfacing withthe user-actuatable trigger; and a force-feedback motor operativelyinterfacing with the rack gear and configured to drive the rack gear tothereby adjust a user-perceived state of the user-actuatable trigger. 2.The user-input device of claim 1, wherein the force-feedback motorincludes a drive gear including a plurality of gear teeth, wherein therack gear includes a plurality of gear teeth meshing with gear teeth ofthe drive gear, and wherein force-feedback motor activation causes drivegear rotation that laterally translates the rack gear and therebyadjusts the user-perceived state of the trigger.
 3. The user-inputdevice of claim 1, wherein the user-actuatable trigger interfaces withthe rack gear via a guided connection that allows the user-actuatabletrigger to move relative to the rack gear.
 4. The user-input device ofclaim 3, wherein the user-actuatable trigger and the rack gearcollectively include a pin-in-slot mechanism that forms the guidedconnection.
 5. The user-input device of claim 1, further comprising: areturn spring operatively intermediate the user-actuatable trigger andthe rack gear, the return spring configured to forward bias theuser-actuatable trigger toward an extended posture.
 6. The user-inputdevice of claim 5, wherein the user-actuatable trigger interfaces withthe return spring via a guided connection that allows theuser-actuatable trigger to move relative to the return spring.
 7. Theuser-input device of claim 6, wherein the user-actuatable trigger andthe return spring collectively include a pin-in-slot mechanism thatforms the guided connection.
 8. The user-input device of claim 1,further comprising: a posture sensor configured to determine a postureof the user-actuatable trigger about the trigger axis, and wherein theforce-feedback motor is configured to drive the rack gear based at leaston the posture of the user-actuatable trigger determined by the posturesensor.
 9. The user-input device of claim 1, further comprising: a forcesensor configured to determine an actuation force applied to theuser-actuatable trigger via finger manipulation, and wherein theforce-feedback motor is configured to drive the rack gear based at leaston the actuation force applied to the user-actuatable trigger determinedby the force sensor.
 10. The user-input device of claim 1, furthercomprising: a communication subsystem configured to receive aforce-feedback signal from a computing device, the force-feedback signaldetermined based at least on a parameter of the computing device, andwherein the force-feedback motor is configured to drive theuser-actuatable trigger via the rack gear based at least on theforce-feedback signal.
 11. A user-input device comprising: auser-actuatable trigger configured to pivot about a trigger axis; aposture sensor configured to determine a posture of the user-actuatabletrigger about the trigger axis; a rack gear operatively interfacing withthe user-actuatable trigger; a force-feedback motor operativelyinterfacing with the rack gear and configured to drive the rack gear tothereby adjust a user-perceived state of the user-actuatable triggerbased at least on the posture of the user-actuatable trigger determinedby the posture sensor.
 12. The user-input device of claim 11, whereinthe force-feedback motor includes a drive gear including a plurality ofgear teeth, wherein the rack gear includes a plurality of gear teethmeshing with gear teeth of the drive gear, and wherein force-feedbackmotor activation causes drive gear rotation that laterally translatesthe rack gear and thereby adjusts the user-perceived state of thetrigger.
 13. The user-input device of claim 11, wherein theuser-actuatable trigger interfaces with the rack gear via a guidedconnection that allows the user-actuatable trigger to move relative tothe rack gear.
 14. The user-input device of claim 13, wherein theuser-actuatable trigger and the rack gear collectively include apin-in-slot mechanism that forms the guided connection.
 15. Theuser-input device of claim 11, further comprising: a return springoperatively intermediate the user-actuatable trigger and the rack gear,the return spring configured to forward bias the user-actuatable triggertoward an extended posture.
 16. The user-input device of claim 11,further comprising: a force sensor configured to determine an actuationforce applied to the user-actuatable trigger via finger manipulation,and wherein the force-feedback motor is configured to drive the rackgear based at least on the actuation force applied to theuser-actuatable trigger determined by the force sensor.
 17. A user-inputdevice comprising: a user-actuatable trigger configured to pivot about atrigger axis; a rack gear; a return spring operatively intermediate theuser-actuatable trigger and the rack gear, the return spring configuredto forward bias the user-actuatable trigger toward an extended posture;and a force-feedback motor configured to drive the rack gear to therebyadjust a spring force applied by the return spring to theuser-actuatable trigger.
 18. The user-input device of claim 17, furthercomprising: a posture sensor configured to determine a posture of theuser-actuatable trigger about the trigger axis, and wherein theforce-feedback motor is configured to drive the rack gear based at leaston the posture of the user-actuatable trigger determined by the posturesensor.
 19. The user-input device of claim 17, further comprising: aforce sensor configured to determine an actuation force applied to theuser-actuatable trigger via finger manipulation, and wherein theforce-feedback motor is configured to drive the rack gear based at leaston the actuation force applied to the user-actuatable trigger determinedby the force sensor.
 20. The user-input device of claim 17, furthercomprising: a communication subsystem configured to receive aforce-feedback signal from a computing device, the force-feedback signaldetermined based at least on a parameter of the computing device, andwherein the force-feedback motor is configured to drive theuser-actuatable trigger via the rack gear based at least on theforce-feedback signal.